<?php

namespace app\model;

use think\Model;

/**
 * 岗位模型
 */
class Position extends Model
{
    // 表名
    protected $name = 'position';

    // 自动写入时间戳
    protected $autoWriteTimestamp = true;

    // 时间戳字段名
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';

    /**
     * 获取岗位所属的部门
     * @return \think\model\relation\BelongsTo
     */
    public function department()
    {
        return $this->belongsTo(Department::class, 'department_id');
    }

    /**
     * 获取所有岗位列表
     * @return array
     */
    public static function getList()
    {
        return self::order('id', 'asc')->select()->toArray();
    }

    /**
     * 根据部门ID获取岗位列表
     * @param int $departmentId 部门ID
     * @return array
     */
    public static function getByDepartmentId(int $departmentId)
    {
        return self::where('department_id', $departmentId)->order('id', 'asc')->select()->toArray();
    }

    /**
     * 根据ID获取岗位信息
     * @param int $id 岗位ID
     * @return array|null
     */
    public static function getById(int $id)
    {
        return self::find($id);
    }

    /**
     * 添加岗位
     * @param array $data 岗位数据
     * @return bool|int
     */
    public static function add(array $data)
    {
        return self::create($data)->id;
    }

    /**
     * 更新岗位
     * @param int $id 岗位ID
     * @param array $data 岗位数据
     * @return bool
     */
    public static function updateById(int $id, array $data)
    {
        return self::where('id', $id)->update($data);
    }

    /**
     * 删除岗位
     * @param int $id 岗位ID
     * @return bool
     */
    public static function deleteById(int $id)
    {
        return self::destroy($id);
    }
}